home *** CD-ROM | disk | FTP | other *** search
- /* The instruction set. */
-
- /* --- The instruction set has been extended for Moscow SML! --- */
-
- /* One instruction per line only. */
-
- enum instructions {
- CONSTBYTE,
- CONSTSHORT,
- GETGLOBAL,
- SETGLOBAL,
- CUR,
- SWITCH,
- BRANCH,
- BRANCHIF,
- BRANCHIFNOT,
- POPBRANCHIFNOT,
- BRANCHIFNEQTAG,
- BRANCHIFEQ,
- BRANCHIFNEQ,
- BRANCHIFLT,
- BRANCHIFGT,
- BRANCHIFLE,
- BRANCHIFGE,
- BRANCHINTERVAL,
- C_CALL1,
- C_CALL2,
- C_CALL3,
- C_CALL4,
- C_CALL5,
- C_CALLN,
- MAKEBLOCK,
- MAKEBLOCK1,
- MAKEBLOCK2,
- MAKEBLOCK3,
- MAKEBLOCK4,
- TAGOF,
- ACCESS,
- ACC0,
- ACC1,
- ACC2,
- ACC3,
- ACC4,
- ACC5,
- ATOM,
- ATOM0,
- ATOM1,
- ATOM2,
- ATOM3,
- ATOM4,
- ATOM5,
- ATOM6,
- ATOM7,
- ATOM8,
- ATOM9,
- GETFIELD,
- GETFIELD0,
- GETFIELD1,
- GETFIELD2,
- GETFIELD3,
- SETFIELD,
- SETFIELD0,
- SETFIELD1,
- SETFIELD2,
- SETFIELD3,
- STOP,
- CHECK_SIGNALS,
- APPLY,
- RETURN,
- APPTERM,
- GRAB,
- LET,
- LETREC1,
- DUMMY,
- UPDATE,
- ENDLET,
- ENDLET1,
- PUSHTRAP,
- RAISE,
- POPTRAP,
- PUSH,
- POP,
- PUSHMARK,
- PUSH_GETGLOBAL_APPLY,
- PUSH_GETGLOBAL_APPTERM,
- BOOLNOT,
- NEGINT,
- SUCCINT,
- PREDINT,
- ADDINT,
- SUBINT,
- MULINT,
- DIVINT,
- MODINT,
- ANDINT,
- ORINT,
- XORINT,
- SHIFTLEFTINT,
- SHIFTRIGHTINTSIGNED,
- SHIFTRIGHTINTUNSIGNED,
- EQ,
- NEQ,
- LTINT,
- GTINT,
- LEINT,
- GEINT,
- INCR,
- DECR,
- FLOATOP,
- INTOFFLOAT,
- EQFLOAT,
- NEQFLOAT,
- LTFLOAT,
- GTFLOAT,
- LEFLOAT,
- GEFLOAT,
- STRINGLENGTH,
- GETSTRINGCHAR,
- SETSTRINGCHAR,
- EQSTRING,
- NEQSTRING,
- LTSTRING,
- GTSTRING,
- LESTRING,
- GESTRING,
- MAKEVECTOR,
- VECTLENGTH,
- GETVECTITEM,
- SETVECTITEM,
- SMLNEGINT,
- SMLSUCCINT,
- SMLPREDINT,
- SMLADDINT,
- SMLSUBINT,
- SMLMULINT,
- SMLDIVINT,
- SMLMODINT,
- MAKEREFVECTOR,
- SMLQUOTINT,
- SMLREMINT,
- BREAK
- };
-
- enum float_instructions {
- FLOATOFINT,
- NEGFLOAT,
- ADDFLOAT,
- SUBFLOAT,
- MULFLOAT,
- DIVFLOAT,
- SMLNEGFLOAT,
- SMLADDFLOAT,
- SMLSUBFLOAT,
- SMLMULFLOAT,
- SMLDIVFLOAT
- };
-